#pragma once
#include "RandomEngine.h" // easy way to make sure DX is ready
#include "Actors.h"
#include "Component.h"
#include "SceneNodes.h"

class BaseRenderComponent : public BaseActorComponent
{
public:
	BaseRenderComponent() {}
	~BaseRenderComponent() {
	}

	SceneNodePtr m_SceneNode;
	virtual SceneNodePtr CreateSceneNode() = 0;
	SceneNodePtr GetSceneNode();

	static const ComponentType m_BaseComponentType;
	virtual const ComponentType & VGetBaseComponentType()
	{
		return m_BaseComponentType;
	}
};
class MeshRenderComponent : public BaseRenderComponent
{
public:
	MeshRenderComponent() {}
	~MeshRenderComponent() {}

	AssetDataPtr m_pMesh;
	AssetDataPtr m_pMaterial;
	virtual SceneNodePtr CreateSceneNode();

	virtual const ComponentType & VGetComponentType()
	{
		return m_ComponentType;
	}
	static const ComponentType m_ComponentType;
};